﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Documents;
using System.IO;

namespace CharacterCreation.Data.Models {
    [Serializable]
    public class Race : BasePersistanceClass {
    
        /// <summary>
        /// Gets or sets the StrengthBonus
        /// </summary>
        public int StrengthBonus {
            get { return _StrengthBonus; }
            set {
                _StrengthBonus = value;
                RaisePropertyChanged("StrengthBonus");
            }
        }
        private int _StrengthBonus;

        
        /// <summary>
        /// Gets or sets the DexterityBonus
        /// </summary>
        public int DexterityBonus {
            get { return _DexterityBonus; }
            set {
                _DexterityBonus = value;
                RaisePropertyChanged("DexterityBonus");
            }
        }
        private int _DexterityBonus;

        
        /// <summary>
        /// Gets or sets the FightingBonus
        /// </summary>
        public int FightingBonus {
            get { return _FightingBonus; }
            set {
                _FightingBonus = value;
                RaisePropertyChanged("FightingBonus");
            }
        }
        private int _FightingBonus;

        
        /// <summary>
        /// Gets or sets the ConstitutionBonus
        /// </summary>
        public int ConstitutionBonus {
            get { return _ConstitutionBonus; }
            set {
                _ConstitutionBonus = value;
                RaisePropertyChanged("ConstitutionBonus");
            }
        }
        private int _ConstitutionBonus;

        
        /// <summary>
        /// Gets or sets the PerceptionBonus
        /// </summary>
        public int PerceptionBonus {
            get { return _PerceptionBonus; }
            set {
                _PerceptionBonus = value;
                RaisePropertyChanged("PerceptionBonus");
            }
        }
        private int _PerceptionBonus;

        
        /// <summary>
        /// Gets or sets the IntelligenceBonus
        /// </summary>
        public int IntelligenceBonus {
            get { return _IntelligenceBonus; }
            set {
                _IntelligenceBonus = value;
                RaisePropertyChanged("IntelligenceBonus");
            }
        }
        private int _IntelligenceBonus;

        
        /// <summary>
        /// Gets or sets the WillPowerBonus
        /// </summary>
        public int WillPowerBonus {
            get { return _WillPowerBonus; }
            set {
                _WillPowerBonus = value;
                RaisePropertyChanged("WillPowerBonus");
            }
        }
        private int _WillPowerBonus;

        
        /// <summary>
        /// Gets or sets the CharismaBonus
        /// </summary>
        public int CharismaBonus {
            get { return _CharismaBonus; }
            set {
                _CharismaBonus = value;
                RaisePropertyChanged("CharismaBonus");
            }
        }
        private int _CharismaBonus;

        
        /// <summary>
        /// Gets or sets the HitPointsBonus
        /// </summary>
        public int HitPointsBonus {
            get { return _HitPointsBonus; }
            set {
                _HitPointsBonus = value;
                RaisePropertyChanged("HitPointsBonus");
            }
        }
        private int _HitPointsBonus;
        
        /// <summary>
        /// Gets or sets the EssenceBonus
        /// </summary>
        public int EssenceBonus {
            get { return _EssenceBonus; }
            set {
                _EssenceBonus = value;
                RaisePropertyChanged("EssenceBonus");
            }
        }
        private int _EssenceBonus;

        
        /// <summary>
        /// Gets or sets the Description
        /// </summary>
        public string Description {
            get {
                return _Description; 
            }
            set {
                _Description = value;
                RaisePropertyChanged("Description");
            }
        }
        private string _Description;
                

        public override string ToString() {
            return this.Name;
        }
    }
}
